home *** CD-ROM | disk | FTP | other *** search
/ MacFormat España 15 / macformat_15.iso / C de cerca / Codewarrior Lite / MacOS Support / Headers / ANSI Headers / yvals.h < prev    next >
Text File  |  1995-12-29  |  7KB  |  276 lines

  1. /* yvals.h values header */
  2. #ifndef _YVALS
  3. #define _YVALS
  4.  
  5. #if __MWERKS__
  6. #pragma options align=mac68k
  7.  
  8. #if __CFM68K__ && __USING_IMPORTED_ANSI__
  9. #pragma import on
  10. #endif
  11. #endif
  12.  
  13.   /* determine target */
  14. #if defined(__TINY__)||defined(__SMALL__)||defined(__COMPACT__)||\
  15.     defined(__MEDIUM__)||defined(__LARGE__)||defined(__HUGE__)
  16.  #define _INTELx86 1
  17.  #define _MSDOS_C_LIB 1
  18.  #if defined(_MSC)
  19.  #elif __TURBOC__ == 0x0452
  20.   #define _BORLAND40 1
  21.  #else
  22.   #define _BORLAND31 1
  23.  #endif
  24.  
  25. #elif defined(sun)
  26.  #define _INTELx86 0
  27.  #define _POSIX_C_LIB 1
  28.  
  29. #elif defined(__MWERKS__)
  30.  #define _INTELx86 0
  31.  #define _POSIX_C_LIB 0
  32.  #define _C_LIB_IS_EXTERN_C 1
  33.  
  34. #else
  35.  #define _INTELx86 0
  36.  #define _POSIX_C_LIB 1
  37.  #define _PHI_ANALYZER 1
  38. #endif
  39.   /* errno properties */
  40. #define _EDOM 33
  41. #define _ERANGE 34
  42. #define _EFPOS 35
  43. #define _EILSEQ 36
  44. #define _ERRMAX 37
  45.   /* float properties */
  46. #define _DBIAS 0x3fe
  47. #define _DOFF 4
  48. #define _FBIAS 0x7e
  49. #define _FOFF 7
  50. #define _FRND 1
  51. #if _INTELx86 /* little-endian, big long doubles */
  52.  #define _D0 3
  53.  #define _DLONG 1
  54.  #define _LBIAS 0x3ffe
  55.  #define _LOFF 15
  56. #elif defined(sun) /* big-endian, funny long doubles */
  57.  #define _LONG_DOUBLE_HAS_HIDDEN_BIT 1
  58.  #define _D0 0
  59.  #define _DLONG 1
  60.  #define _LBIAS 0x3ffe
  61.  #define _LOFF 15
  62. #else /* big-endian, small long doubles */
  63.  #define _LONG_DOUBLE_HAS_HIDDEN_BIT 1
  64.  #define _D0 0
  65.  #define _DLONG 0
  66.  #define _LBIAS 0x3fe
  67.  #define _LOFF 4
  68. #endif
  69.   /* integer properties */
  70. #define _BITS_BYTE 8
  71. #define _C2   1
  72. #define _CSIGN  1
  73. #define _MBMAX  8
  74. typedef int _Wintt;
  75. #define _WCMIN  0
  76. #define _WCMAX  0xffff
  77. #if _INTELx86 /* 16-bit int */
  78.  #define _ILONG 0
  79. #elif __MWERKS__
  80.  #define _ILONG __fourbyteints__
  81. #else /* 32-bit int */
  82.  #define _ILONG 1
  83. #endif
  84. #define _MAX_EXP_DIG 8 /* for parsing numerics */
  85. #define _MAX_INT_DIG 32
  86. #define _MAX_SIG_DIG 36
  87. #if defined(_BORLAND40) && defined(__cplusplus)
  88.  #define _WCHART  /* wchar_t already built-in */
  89.  typedef wchar_t _Wchart;
  90. #elif __MWERKS__
  91.  typedef char _Wchart;
  92. #else
  93.  typedef unsigned short   _Wchart;
  94. #endif
  95.   /* pointer properties */
  96. #if defined(_BORLAND31) || defined(_BORLAND40)
  97.  #include <_null.h>  /* rules are too complicated to recite here */
  98. #endif
  99.  
  100. #if defined(__HUGE__)||defined(__COMPACT__)||defined(__LARGE__)
  101.  #define _NULL 0L
  102.  #if defined(_BORLAND31) || defined(_BORLAND40)
  103.   typedef long _Ptrdifft;
  104.  #else
  105.   typedef int _Ptrdifft;
  106.  #endif
  107.  typedef unsigned int _Sizet;
  108. #elif __MWERKS__
  109.  #define _NULL 0L
  110.  typedef long _Ptrdifft;
  111.  typedef unsigned long _Sizet;
  112. #else
  113.  #define _NULL 0
  114.  typedef int _Ptrdifft;
  115.  typedef unsigned int _Sizet;
  116. #endif
  117.   /* setjmp properties */
  118. #if _INTELx86
  119.  #define _NSETJMP 10
  120. #else
  121.  #define _NSETJMP 80
  122. #endif
  123. #if _HAS_NO_SETJMP /* should rarely be true */
  124.  #if _USE_EXISTING_SYSTEM_NAMES
  125.   #define _Setjmp setjmp
  126.  #endif
  127.  _EXTERN_C
  128.  int _Setjmp(int *);
  129.  _END_EXTERN_C
  130. #endif /*0*/
  131.   /* signal properties */
  132. #if _INTELx86
  133.  #define _SIGABRT 22
  134. #else
  135.  #define _SIGABRT 6
  136. #endif
  137. #define _SIGMAX  32
  138.   /* stdarg properties */
  139. #if SPARCompiler
  140.  typedef char *_Va_list;
  141.  #ifdef __cplusplus
  142.   extern "C" char __builtin_va_alist;
  143.   extern "C" void *__builtin_va_arg_incr(...);
  144.  #else /* !__cplusplus */
  145.   extern char __builtin_va_alist;
  146.   extern void *__builtin_va_arg_incr();
  147.  #endif  /* __cplusplus */
  148.  #define _Va_start(ap, A) (void)(ap = (char *)&__builtin_va_alist)
  149.  #define _Va_arg(ap, T) ((T *)__builtin_va_arg_incr((T *)ap))[0]
  150. #elif defined(_BORLAND40)
  151.  typedef void __far *_Va_list;/* and use their <stdarg.h> */
  152. #elif __MWERKS__
  153.  typedef char *_Va_list;
  154.  #define _Va_start_addr(A)        (va_list)(&A+1)
  155.  #define _Va_start(ap,A)        (ap=_Va_start_addr(A))
  156.  #define _Va_arg(ap,T)            (*(*(T **)&ap)++)
  157. #else
  158.  typedef char *_Va_list;
  159.  #define _Bnd(X, bnd) (sizeof (X) + (bnd) & ~(bnd))
  160.  #define _Va_arg(ap, T) \
  161.  (*(T *)(((ap) += _Bnd(T, _AUPBND)) - _Bnd(T, _ADNBND)))
  162.  #define _Va_start(ap, A) \
  163.  (void)((ap) = (char *)&(A) + _Bnd(A, _AUPBND))
  164. #endif
  165.   /* stdlib properties */
  166. #define _EXFAIL 1
  167. typedef struct _Mbstatet {
  168.  _Wchart _Wchar;
  169.  char _State;
  170.  } _Mbstatet;
  171.   /* stdio properties */
  172. #ifndef __MWERKS__
  173.  #define _FNAMAX 64
  174.  #define _FOPMAX 16
  175. #else
  176.  #define _FNAMAX 255
  177.  #define _FOPMAX 64
  178. #endif
  179. #define _TNAMAX 16
  180. typedef struct _Fpost {
  181.  unsigned long _Off; /* can be system dependent */
  182.  _Mbstatet _Wstate;
  183.  } _Fpost;
  184.   /* storage alignment properties */
  185. #if SPARCompiler || defined(_PHI_ANALYZER)
  186.  #define _AUPBND 4U /* sixteen-byte boundaries (2^^4) */
  187.  #define _ADNBND 4U
  188. #elif __MWERKS__ && __CFM68K__
  189.  #define _AUPBND 2U /* long word boundaries (2^^2) */
  190.  #define _ADNBND 2U
  191. #else
  192.  #define _AUPBND 1U /* even-byte boundaries (2^^1) */
  193.  #define _ADNBND 1U
  194. #endif
  195. #if SPARCompiler || defined(_PHI_ANALYZER)
  196.  #define _MEMBND 4U  /* sixteen-byte boundaries (2^^4) */
  197. #elif __MWERKS__
  198.  #if __POWERPC__
  199.   #define _MEMBND 3U  /* long word boundaries (2^^3) */
  200.  #else
  201.   #define _MEMBND 2U  /* long word boundaries (2^^2) */
  202.  #endif
  203. #else
  204.  #define _MEMBND 1U  /* even-byte boundaries (2^^1) */
  205. #endif
  206.   /* time properties */
  207. #if __MWERKS__
  208.  #define _CPS 60
  209.  #define _TBIAS ((4 * 365LU + 1) * 86400)
  210. #else
  211.  #define _CPS 1
  212.  #define _TBIAS ((70 * 365LU + 17) * 86400)
  213. #endif
  214.   /* naming properties */
  215. #define _USE_EXISTING_SYSTEM_NAMES 1 /* _Open => open etc. */
  216. #ifdef __cplusplus
  217.  #define _EXTERN_C extern "C" {
  218.  #define _END_EXTERN_C }
  219. #else
  220.  #define _EXTERN_C
  221.  #define _END_EXTERN_C
  222. #endif /* __cplusplus */
  223. #if defined(__cplusplus) && defined(_C_LIB_IS_EXTERN_C)
  224.  #define _C_LIB_DECL extern "C" {
  225.  #define _END_C_LIB_DECL }
  226. #else
  227.  #define _C_LIB_DECL
  228.  #define _END_C_LIB_DECL
  229. #endif /* __cplusplus && _C_LIB_IS_EXTERN_C */
  230.   /* handle botched widechar constants as need be */
  231. #if defined(sun)||defined(__CENTERLINE__)||defined(_BORLAND31) \
  232.     || defined(__MWERKS__)
  233.  #define _L(c) (c)
  234. #else
  235.  #define _L(c) L##c
  236. #endif
  237.   /* handle botched auto aggregate inits as need be */
  238. #if defined(__CENTERLINE__)
  239.  #define _Mbstinit(x) \
  240.  static mbstate_t _Mbst0; mbstate_t x; x = _Mbst0
  241. #else
  242.  #define _Mbstinit(x)  mbstate_t x = {0}
  243. #endif
  244.   /* handle botched signed char type as need be */
  245. #if defined(_PH_ANALYZER)||defined(_BORLAND40) || defined(__MWERKS__)
  246.  #define _HAS_SIGNED_CHAR 1
  247. #endif
  248.   /* handle botched array-new as need be */
  249. #if defined(_BORLAND40)  /* i.e. implements array-new */
  250.  #define _HAS_ARRAY_NEW 1
  251. #endif
  252.   /* handle botched exceptions as need be */
  253. #if defined(_BORLAND40)  /* i.e. implements exceptions */
  254.  #define _HAS_EXCEPTIONS 1
  255. #endif
  256.  
  257. #if __MWERKS__
  258. #if __CFM68K__ && __USING_IMPORTED_ANSI__
  259. #pragma import reset
  260. #endif
  261.  
  262. #pragma options align=reset
  263. #endif
  264.  
  265. #endif /* _YVALS */
  266.  
  267. /*
  268.  * Copyright (c) 1994 by P.J. Plauger.  ALL RIGHTS RESERVED. 
  269.  * Consult your license regarding permissions and restrictions.
  270.  */
  271. /* Change log:
  272.  *94Oct03 Version received from PlumHall
  273.  *94Oct08 Inserted MW changes.
  274.  *94Oct11MM Added MW definition of _HAS_SIGNED_CHAR
  275.  */
  276.